<template>
  <div class="row">
    <!-- 展示用户列表 -->
    <div
      v-show="usersList.length"
      class="card"
      v-for="user in usersList"
      :key="user.login"
    >
      <a :href="user.html_url" target="_blank">
        <img :src="user.avatar_url" style="width: 100px" />
      </a>
      <p class="card-text">{{ user.login }}</p>
    </div>
    <!-- 展示欢迎词 -->
    <h1 v-show="isFirst">欢迎使用！</h1>
    <!-- 展示加载中 -->
    <h1 v-show="isLoading">加载中.........</h1>
    <!-- 展示错误信息 -->
    <h1 v-show="errmsg">{{ errmsg }}</h1>
  </div>
</template>

<script>
export default {
  name: "ListV",
  data() {
    return {
      isFirst: true,
      isLoading: false,
      errmsg: "",
      usersList: [],
    };
  },
  mounted() {
    /* this.$bus.$on("requestData", (data, isFirst, isLoading, errmsg) => {
      this.usersList = data;
      this.isFirst = isFirst;
      this.isLoading = isLoading;
      this.errmsg = errmsg;
    }); 可以这样写 */

    //使用对象的解构赋值，注意()或者在data中再使用一个属性info将这些包裹在其中，但是模板中也要进行修改
    this.$bus.$on("requestData", (dataObj) => {
      ({
        usersList: this.usersList,
        isFirst: this.isFirst,
        isLoading: this.isLoading,
        errmsg: this.errmsg,
      } = dataObj);
    });
  },
};
</script>

<style scoped>
.album {
  min-height: 50rem; /* Can be removed; just added for demo purposes */
  padding-top: 3rem;
  padding-bottom: 3rem;
  background-color: #f7f7f7;
}

.card {
  float: left;
  width: 33.333%;
  padding: 0.75rem;
  margin-bottom: 2rem;
  border: 1px solid #efefef;
  text-align: center;
}

.card > img {
  margin-bottom: 0.75rem;
  border-radius: 100px;
}

.card-text {
  font-size: 85%;
}
</style>